package cn.lijigou.shopping.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author 董永健 E-mail:dong_yong_jian@163.com
 * @version CreatTime：2011-4-6 上午11:22:07
 * 类说明
 */
public class StringTool {
	/**
	 * @author 董永健  判断是否邮箱
	 * @param email
	 * @return
	 * @param
	 */
	public static Boolean isEmail(String email){
		Pattern p = Pattern.compile("^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_-])+(\\.([a-zA-Z0-9_-])+)+$");
		Matcher m = p.matcher(email);
		return m.matches();
	}
	/**
	 * @author 董永健 判断是否为空
	 * @param str
	 * @return
	 * @param
	 */
	public static Boolean isNull(String str){
	 	String regStartSpace = "^[　 ]*";   
        String regEndSpace = "[　 ]*$";   
        String strDelSpace = str.replaceAll(regStartSpace, "").replaceAll(regEndSpace, "");   
        if(strDelSpace.length()==0){
        	return true;
        }
        return false;
	}
	/**
	 * @author 董永健  判断是否符合长度
	 * @param str
	 * @return
	 * @param
	 */
	public static Boolean isLength4_16(String str){
		int length = chineseLength(str);
		if(length<4||length>16){
			return true;
		}
		return false;
	}
	 /**
	   * 获取字符串的长度，如果有中文，则每个中文字符计为2位
	   *
	   * @param value
	   *        指定的字符串
	   * @return 字符串的长度
	   */
	public static int chineseLength(String value) {
	          int valueLength = 0;
	         String chinese = "[\u0391-\uFFE5]";
	        /* 获取字段值的长度，如果含中文字符，则每个中文字符长度为2，否则为1 */
	        for (int i = 0; i < value.length(); i++) {
	             /* 获取一个字符 */
	            String temp = value.substring(i, i + 1);
	            /* 判断是否为中文字符 */
	             if (temp.matches(chinese)) {
	                /* 中文字符长度为2 */
	                 valueLength += 2;
	             } else {
	                /* 其他字符长度为1 */
	                 valueLength += 1;
	             }
	        }
	        return valueLength;
	}
	/**
	 * @author 董永健  判断是否符合长度
	 * @param str
	 * @return
	 * @param
	 */
	public static Boolean isLength6_16(String str){
		if(str.getBytes().length<6||str.getBytes().length>16){
			return true;
		}
		return false;
	}
	/**
	 * @author 董永健  判断是否只含有只含有数字，a-z,A-Z,空格，下划线，中划线
	 * @param str
	 * @return
	 * @param
	 */
	public static Boolean isStr(String str){
		if(str.replaceAll("[a-z]*[A-Z]*\\d*-*_*\\s*", "").length()==0)
			return false;
		else 
			return true;
	}
	public static Boolean isSamePassword(String password1,String password2){
		if(password1.equals(password2))
			return false;
		else 
			return true;
	}
	
    public static boolean isMobileNO(String mobiles){        
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,2-9]))\\d{8}$");        
        Matcher m = p.matcher(mobiles);
        return m.matches();        
    }  
}
